package service.impl;

import dao.MenuDao;
import dao.impl.MenuDaoImpl;
import pojo.Menu;
import service.MenuService;
import util.PageBean;

import java.util.List;

/**
 * 菜单接口的实现类
 * @author 叶军军
 */
public class MenuServiceImpl implements MenuService {

    MenuDao md=new MenuDaoImpl();

    /**
     *菜单分页功能
     */
    @Override
    public PageBean menuPageList(PageBean pb, String ename) {
        pb.setTotalCount(count(ename));
        List<Menu> menus=md.menuPageList(pb, ename).getList();
        List<Menu> me=queryMenu();
        for(Menu menu:menus){
            for(Menu menu1:me){
                if(menu.getMeHigh()==100){
                    menu.setMeHighName("顶级菜单");
                }else{
                    if(menu.getMeHigh()==menu1.getMeId()){
                        //赋值
                        menu.setMeHighName(menu1.getMeName());
                        break;
                    }
                }
            }
        }
        pb.setList(menus);
        return pb;
    }

    /**
     *统计菜单总数
     */
    @Override
    public int count(String ename) {
        return md.count(ename);
    }

    /**
     * 查询所有菜单
     */
    @Override
    public List<Menu> queryMenu() {
        return md.queryMenu();
    }

    /**
     *根据菜单名称修改菜单权限
     */
    @Override
    public int updateMenuRoolByName(String name, int rool) {
        return md.updateMenuRoolByName(name,rool);
    }

    /**
     *查询顶级菜单
     */
    @Override
    public List<Menu> querySupMenu() {
        return md.querySupMenu();
    }

    /**
     *新增菜单
     */
    @Override
    public int inseMenu(Menu menu) {
        return md.inseMenu(menu);
    }

    /**
     *根据菜单id查询菜单信息
     */
    @Override
    public Menu queryMenuById(int id) {
        return md.queryMenuById(id);
    }

    /**
     *修改菜单
     */
    @Override
    public int modifMenu(Menu menu) {
        return md.modifMenu(menu);
    }

    /**
     *删除菜单
     */
    @Override
    public int deleMenu(int id) {
        return md.deleMenu(id);
    }

    /**
     * 根据角色id查询角色拥有的菜单
     */
    @Override
    public List<Menu> queryMenuByRoId(int roleId) {
        return md.queryMenuByRoId(roleId);
    }
}
